package com.csap.framework.oauth2.server;

import com.csap.framework.oauth2.CacheType;
import com.csap.framework.oauth2.type.PasswordType;
import com.csap.framework.oauth2.type.PlatformType;
import com.csap.framework.util.StringUtil;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;

import java.util.regex.Pattern;

/**
 * 授权认证配置文件
 *
 * @author yangchengfu
 * @dataTime 2021年-07月-25日 22:09:00
 **/
@Data
@ConfigurationProperties(prefix = Oauth2ServerProperties.PREFIX)
public class Oauth2ServerProperties {
    public static final String PREFIX = "csap.oauth2.server";
    /**
     * 用户信息缓存类型
     */
    private CacheType cacheType = CacheType.DEFAULT;
    /**
     * 缓存过期时间/秒
     */
    private Long cacheTime = (long) (60 * 60 * 24 * 3);

    /**
     * 是否开启
     */
    private Boolean enabled = Boolean.TRUE;
    /**
     * 没有登录的页面路径
     */
    private String notLoginView = "login.html";

    /**
     * 确认授权应用页面路径
     */
    private String confirmView = "confirm.html";
    /**
     * 密码加密类型
     */
    private PasswordType passwordType = PasswordType.sha256;

    /**
     * 密码规则正则
     */
    private String passwordPattern = "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)[a-zA-Z\\d\\W]{6,18}$";
    /**
     * 平台策略类型
     */
    private PlatformType platformType = PlatformType.PARAM;


    public String encry(String value) {
        if (StringUtil.isNotEmpty(value)) {

        }
        return passwordType.encry(value);
    }
}
